﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Leiloes
{
    [Serializable]
	public class Leilao
	{
		public int id { get; set; }
		public int vendedorID {get;set;}
		public int compradorID {get;set;}
		public string nome { get; set; }
		public string descricaoArtigo {get;set;}
		public DateTime dataInicio { get; set; }
		public DateTime dataFim { get; set; }
		public double valorInicial { get; set; }
		public double valorAtual { get; set; }
		public double valorMax {get;set;}
		public double valorIncr {get;set;}
		public string ativo { get; set; }
		
		public Leilao() {
			this.ativo = "Sim";
			this.valorAtual = 0;
		}
		
		/// <summary>
		/// Método para tratar o tipo de dados
		/// Ou seja tratar diretamente da consola, string, para o seu respetivo tipo de dado definido no atributo
		/// </summary>
		/// <param name="dataInicio"></param>
		public void setDataInicio (string dataInicio) {
			this.dataInicio = DateTime.Parse(dataInicio);
		}
		
        /// <summary>
		/// Método para tratar o tipo de dados
		/// Ou seja tratar diretamente da consola, string, para o seu respetivo tipo de dado definido no atributo
		/// </summary>
		/// <param name="dataInicio"></param>
		public void setDataFim (string dataFim) {
			this.dataFim = DateTime.Parse(dataFim);
		}
		
        /// <summary>
		/// Método para tratar o tipo de dados
		/// Ou seja tratar diretamente da consola, string, para o seu respetivo tipo de dado definido no atributo
		/// </summary>
		/// <param name="dataInicio"></param>
		public void setValorInicial (string valorInicial) {
			this.valorInicial = double.Parse(valorInicial);
		}

		/// <summary>
		/// Método para tratar o tipo de dados
		/// Ou seja tratar diretamente da consola, string, para o seu respetivo tipo de dado definido no atributo
		/// </summary>
		/// <param name="dataInicio"></param>
		public void setValorAtual (string valorAtual) {
			this.valorAtual = double.Parse(valorAtual);
		}
		
        /// <summary>
        /// Override do metodo toString para retorna-lo de uma forma ligivel
        /// </summary>
        /// <returns></returns>
		public override string ToString()
		{
		 	return string.Format("Leilao Id={0}\nNome={1}\nDescricao Artigo={2}\nDataInicio={3}, DataFim={4}\nValor Inicial={5}, Valor Atual={6}\nAtivo={7}\n", id, nome, descricaoArtigo, dataInicio.ToShortDateString(), dataFim.ToShortDateString(), valorInicial, valorAtual, ativo);
		}

		
	}	
}
